package com.yootk.config;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * 数据源切面处理类
 */
@Slf4j
@Aspect
@Component
@Order(-100)    // 优先执行
public class DataSourceAspect {

    @Before("execution(* com.yootk.dao.muyan..*.*(..))")     // 在每次操作之前进行切换处理
    public void switchMuyanDataSource() {   // 切换指定的数据源
        DynamicDataSource.setDataSource(DynamicDataSource.DataSourceNames.MUYAN_DATASOURCE);    // 设置数据源的名称
        log.info("数据源切换到“MUYAN”：{}", DynamicDataSource.getDataSource());    // 日志输出
    }

    @Before("execution(* com.yootk.dao.yootk..*.*(..))")     // 在每次操作之前进行切换处理
    public void switchYootkDataSource() {   // 切换指定的数据源
        DynamicDataSource.setDataSource(DynamicDataSource.DataSourceNames.YOOTK_DATASOURCE);    // 设置数据源的名称
        log.info("数据源切换到“YOOTK”：{}", DynamicDataSource.getDataSource());    // 日志输出
    }
}
